package com.meilai.project.entity.business.sale;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.meilai.project.dto.workflow.FlowBusinessDataSuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 *
 * </p>
 *
 * @author xchen
 * @since 2022-03-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bill_sale")
@ApiModel(value = "BillSale对象", description = "")
public class BillSale extends FlowBusinessDataSuperEntity {

    public static final String CONTRACT_ID = "contract_id";
    public static final String CHOOSE_ID = "choose_id";
    public static final String DATERANGE_ID = "daterange_id";
    public static final String FILL_DATE = "fill_date";
    public static final String DEPT_ID = "dept_id";
    public static final String ACTUAL_EXECUTE_TIME_START = "actual_execute_time_start";
    public static final String ACTUAL_EXECUTE_TIME_END = "actual_execute_time_end";
    public static final String RELEASE_AMOUNT = "release_amount";
    public static final String REPLACE_AMOUNT = "replace_amount";
    public static final String EXECUTE_AMOUNT = "execute_amount";
    public static final String PROXY_MEDIA_FORM = "proxy_media_form";
    public static final String PROXIED_MEDIA_FORM = "proxied_media_form";
    public static final String PROXY_COMPANY_NAME = "proxy_company_name";
    public static final String PROXY_AMOUNT = "proxy_amount";
    public static final String PROXIED_COMPANY_NAME = "proxied_company_name";
    public static final String PROXIED_AMOUNT = "proxied_amount";
    public static final String NEED_REPLACE = "need_replace";
    public static final String ITEM_AMOUNT = "item_amount";
    public static final String CASH_AMOUNT = "cash_amount";
    public static final String ACCRUED_AMOUNT = "accrued_amount";
    public static final String COLLECTION_TIME = "collection_time";
    public static final String NEED_INVOICE = "need_invoice";
    public static final String MEMO = "memo";
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "客户id")
    private Long customer_id;
    @ApiModelProperty(value = "点位选择id")
    private Long choose_id;
    @ApiModelProperty(value = "日期范围id")
    private Long daterange_id;
    @ApiModelProperty(value = "填表日期")
    private LocalDate fill_date;
    @ApiModelProperty(value = "分公司id")
    private Long dept_id;
    @ApiModelProperty(value = "实际执行开始时间")
    private LocalDate actual_execute_time_start;
    @ApiModelProperty(value = "实际执行结束时间")
    private LocalDate actual_execute_time_end;
    @ApiModelProperty(value = "本次发布金额")
    private BigDecimal release_amount;
    @ApiModelProperty(value = "本次换画面金额")
    private BigDecimal replace_amount;
    @ApiModelProperty(value = "本次执行金额")
    private BigDecimal execute_amount;
    @ApiModelProperty(value = "代理媒体形式")
    private String proxy_media_form;
    @ApiModelProperty(value = "被代理媒体形式")
    private String proxied_media_form;
    @ApiModelProperty(value = "代理公司名称")
    private String proxy_company_name;
    @ApiModelProperty(value = "代理金额")
    private BigDecimal proxy_amount;
    @ApiModelProperty(value = "被代理公司名称")
    private String proxied_company_name;
    @ApiModelProperty(value = "被代理金额")
    private BigDecimal proxied_amount;
    @ApiModelProperty(value = "是否置换：1：是，0：否")
    private Integer need_replace;
    @ApiModelProperty(value = "物品金额")
    private BigDecimal item_amount;
    @ApiModelProperty(value = "现金金额")
    private BigDecimal cash_amount;
    @ApiModelProperty(value = "计提额")
    private String accrued_amount;
    @ApiModelProperty(value = "收款时间")
    private LocalDate collection_time;
    @ApiModelProperty(value = "是否开发票：1：是，0：否")
    private Integer need_invoice;
    @ApiModelProperty("0:无状态，1：挂起, 2:作废")
    @TableField(fill = FieldFill.UPDATE)
    private Integer mode = 0;
    @ApiModelProperty(value = "备注")
    private String memo;
    @ApiModelProperty(value = "合同id")
    private Long contract_id;
    @ApiModelProperty(value = "合同编号")
    private String contract_num;
    @ApiModelProperty("锁位id")
    private Long intention_scheme_id;
    @ApiModelProperty("折扣")
    private BigDecimal discount;
    @ApiModelProperty("1：普通类型 2：换画类型")
    private Integer type;
    @ApiModelProperty("0：未发送 1：已发送")
    private Boolean send_or_not;

    @ApiModelProperty("最新的收款时间")
    private LocalDate latest_collection_time;

    @ApiModelProperty("最后的提醒时间")
    private LocalDate last_remind_date;

    @ApiModelProperty(value = "累计已执行金额")
    private BigDecimal total_executed_amount;

    @ApiModelProperty(value = "本次自营执行金额")
    private BigDecimal self_execute_amount;

    @ApiModelProperty(value = "本次代理执行金额")
    private BigDecimal proxy_execute_amount;
}
